package com.fenxiangtech.mall.service;

import com.fenxiangtech.mall.dto.PageData;
import com.fenxiangtech.mall.dto.Result;
import com.fenxiangtech.mall.entity.Product;

import java.util.List;

/**
 * @author zhangjiashun
 */
public interface ProductService {

    /**
     * 根据themeId获取Product列表
     * @param themeID
     * @return
     */
    List<Product> listSimpleProductByThemeID(Long themeID);

    /**
     * 获取最近添加的Product列表
     * @param count
     * @return
     */
    List<Product> listRecentProduct(Integer count);

    /**
     * 根据CategoryID获取Product列表
     * @param categoryID
     * @return
     */
    List<Product> listProductByCategoryID(Long categoryID);

    /**
     * 根据id获取Product
     * @param id
     * @return
     */
    Product getProductByID(Long id);

    /**
     * 批量获取Product
     * @param ids
     * @return
     */
    List<Product> listProductByIDs(List<Long> ids);

    /**
     * 减库存
     * @param id
     * @param count
     * @return
     */
    boolean reduceStock(Long id, Integer count);

    /**
     * 分页获取商品列表
     * @param page
     * @param size
     * @return
     */
    PageData<Product> listProduct(Integer page, Integer size);

    /**
     * 根据id删除商品(逻辑删除)
     * @param id
     * @return
     */
    Result<String> deleteProduct(Long id);
}
